/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controler;

import Model.Cliente;
import Util.HibernateUtil;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Kingma
 */
public class ClienteDao {
    
     private Session session = new HibernateUtil().getSessionFactory().openSession();
 
    public void SalvarPessoa(Cliente cliente) {
        Transaction tx = session.beginTransaction();
        session.save(cliente);
        tx.commit();
        fecharSessao();
    }
 
    public void DeletarCliente(int id) {
        abrirSessao();
        Cliente Cliente = (Cliente) session.load(Cliente.class, id);
        Transaction tx = session.beginTransaction();
        session.delete(Cliente);
        tx.commit();
        fecharSessao();
    }
 
    public void AlterarCliente(int idcliente, String nomeCliente, String endCliente, String telefoneCliente, String planoCliente){
        abrirSessao();
        Cliente Cliente = (Cliente) session.load(Cliente.class, idcliente);
        Transaction tx = session.beginTransaction();
        Cliente.setNomeCliente(nomeCliente); 
        Cliente.setEndCliente(endCliente);
        Cliente.setTelefoneCliente(telefoneCliente);
        Cliente.setPlanoCliente(planoCliente);
        session.update(Cliente);
        tx.commit();
        fecharSessao();
    }
 
    public  List getPessoas() {
        abrirSessao();
        return session.createQuery("Select p from cliente p").list();
    }
 
    /*
     * Para cada Transação no Banco de Dados é necessário abrir uma sessão de
     * comunicação.
     */
    public void abrirSessao() {
        session = new HibernateUtil().getSessionFactory().openSession();
    }
 
    /* da mesma forma que se faz ne */
    public void fecharSessao() {
        session.close();
    }
 
    
    
}
